package com.github.codemperor.api.security.annotation;


import com.github.codemperor.api.security.enums.ApiMethodEnum;
import com.github.codemperor.api.security.enums.ApiModuleEnum;

import java.lang.annotation.*;

/**
 * api的扫描注解，定义api规范,作用于每个具体的api上
 * todo 这里少了api的类型（open、inner），暂时靠api抽象接口进行大类划分。后期加入字段进行细节划分
 */
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface EmprApi {
    /**
     * api描述
     *
     * @return
     */
    String desc();

    /**
     * GET PUT DELETE POST
     *
     * @return
     */
    ApiMethodEnum method();

    /**
     * api所属模块，方便统计。默认GATEWAY模块
     *
     * @return
     */
    ApiModuleEnum module() default ApiModuleEnum.GATEWAY;
}
